home *** CD-ROM | disk | FTP | other *** search
- Path: xanth!cs.odu.edu!Amiga-Request
- From: Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator)
- Newsgroups: comp.sources.amiga
- Subject: v90i007: plplot 2.6 - C library for making scientific plots, Part06/12
- Message-ID: <10979@xanth.cs.odu.edu>
- Date: 14 Jan 90 23:29:27 GMT
- Sender: tadguy@cs.odu.edu
- Reply-To: Anthony M. Richardson <amr@dukee.egr.duke.edu>
- Lines: 1276
- Approved: tadguy@cs.odu.edu (Tad Guy)
-
- Submitted-by: Anthony M. Richardson <amr@dukee.egr.duke.edu>
- Posting-number: Volume 90, Issue 007
- Archive-name: applications/plplot-2.6/part06
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 6 (of 12)."
- # Contents: Amiga/Amiga.c drivers/postscript.c fonts/plstnd.fnt.uu
- # fonts/plxtnd.idx.uu unix/postscript.c
- # Wrapped by tadguy@xanth on Sun Jan 14 18:11:37 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'Amiga/Amiga.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Amiga/Amiga.c'\"
- else
- echo shar: Extracting \"'Amiga/Amiga.c'\" \(6991 characters\)
- sed "s/^X//" >'Amiga/Amiga.c' <<'END_OF_FILE'
- X /* Amiga PLPLOT window routines. */
- X
- X#include "plplot.h"
- X#include "plamiga.h"
- X#include <stdio.h>
- X#ifdef AZTEC_C
- X /* Psuedo-ANSI compatibility */
- X #define remove(name) unlink(name)
- X /* Lattice defines these for you */
- X struct IntuitionBase *IntuitionBase;
- X struct GfxBase *GfxBase;
- X#endif
- X
- XPLINT XOffset, YOffset, PLWidth, PLHeight;
- XPLINT MaxPLWidth, MaxPLHeight;
- XPLINT InitPLWidth, InitPLHeight;
- Xextern PLINT MaxColors;
- X
- XFILE *PlotFile;
- Xshort fbuffer;
- Xstatic PLINT CurColor;
- X
- Xvoid amisetup(xmm, ymm, xpg, ypg)
- XPLINT xpg, ypg;
- XPLFLT xmm, ymm;
- X{
- X}
- X
- Xvoid amiselect(ori, file)
- XPLINT ori;
- Xchar *file;
- X{
- X}
- X
- X/* amiini is the PLPLOT window initialization routine. It opens the
- X necessary libraries and the window. */
- Xvoid amiinit()
- X{
- X PLFLT Initdpmx, Initdpmy;
- X
- X /* Scan defaults file */
- X GetPLDefs();
- X /* Open the required libraries. */
- X OpenLibs();
- X /* Open window for graphics */
- X OpenPLWind();
- X /* Set up virtual screen width and height */
- X /* Virtual screen is 25 times the actual one. */
- X MaxPLWidth = PLScreen->Width - PLWindow->BorderLeft - PLWindow->BorderRight - 16;
- X MaxPLHeight = PLScreen->Height - PLWindow->BorderTop - PLWindow->BorderBottom - 16;
- X InitPLWidth = MaxPLWidth*25;
- X InitPLHeight = MaxPLHeight*25;
- X Initdpmx = GfxBase->NormalDPMX;
- X Initdpmy = GfxBase->NormalDPMY;
- X if(PLScreen->ViewPort.Modes & HIRES)
- X Initdpmx *= 2.;
- X if(PLScreen->ViewPort.Modes & LACE)
- X Initdpmy *= 2.;
- X setpxl((PLFLT)(Initdpmx/40.),(PLFLT)(Initdpmy/40.));
- X setphy(0, (InitPLWidth-1), 0, (InitPLHeight-1));
- X scol(1);
- X swid(1);
- X smod(1);
- X
- X SetAPen(PLWRPort,1);
- X SetDrMd(PLWRPort,JAM1);
- X setlimits();
- X}
- X
- Xvoid setlimits()
- X{
- X XOffset = PLWindow->BorderLeft+8;
- X YOffset = PLWindow->BorderTop+8;
- X PLWidth = PLWindow->Width - XOffset - PLWindow->BorderRight - 8;
- X PLHeight = PLWindow->Height - YOffset - PLWindow->BorderBottom - 8;
- X if(PLCurPrefs.WinType & PLASP) {
- X if(PLWidth*MaxPLHeight > PLHeight*MaxPLWidth) {
- X PLWidth = (MaxPLWidth*PLHeight)/MaxPLHeight;
- X XOffset += (PLWindow->Width - PLWidth - PLWindow->BorderLeft -
- X PLWindow->BorderRight)/2;
- X }
- X else {
- X PLHeight = (MaxPLHeight*PLWidth)/MaxPLWidth;
- X YOffset += (PLWindow->Height - PLHeight - PLWindow->BorderTop -
- X PLWindow->BorderBottom)/2;
- X }
- X }
- X}
- X
- Xvoid amitidy()
- X{
- X void beepw();
- X
- X beepw();
- X ClosePLWind();
- X CloseLibs();
- X if(fbuffer) {
- X fclose(PlotFile);
- X remove(PLOTBFFR);
- X }
- X}
- X
- Xvoid OpenLibs()
- X{
- X IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library",0L);
- X if( IntuitionBase == NULL ) {
- X puts("\nError opening Intuition library.");
- X goto IntError;
- X }
- X
- X GfxBase = (struct GfxBase *)OpenLibrary("graphics.library",0L);
- X if( GfxBase == NULL ) {
- X puts("\nError opening Graphics library.");
- X goto GfxError;
- X }
- X
- X return;
- X
- XGfxError:
- X CloseLibrary((struct Library *)IntuitionBase);
- XIntError:
- X pl_exit();
- X}
- X
- Xvoid CloseLibs()
- X{
- X CloseLibrary((struct Library *)GfxBase);
- X CloseLibrary((struct Library *)IntuitionBase);
- X}
- X
- Xvoid amitext()
- X{
- X}
- X
- Xvoid amigraph()
- X{
- X}
- X
- Xvoid amiclear()
- X{
- X void beepw(), setpen();
- X
- X beepw();
- X setpen(0);
- X RectFill(PLWRPort,XOffset,YOffset,PLWidth+XOffset,PLHeight+YOffset);
- X setpen(CurColor);
- X if(fbuffer) {
- X fclose(PlotFile);
- X remove(PLOTBFFR);
- X }
- X}
- X
- Xstatic PLINT xold, yold;
- X
- Xvoid amipage()
- X{
- X fbuffer = 0;
- X if(PLCurPrefs.WinType & PLBUFF) {
- X PlotFile = fopen(PLOTBFFR,"w+");
- X if(PlotFile == NULL) {
- X fprintf(stderr,"\nError opening plot data storage file.\n");
- X ClosePLWind();
- X CloseLibs();
- X exit(1);
- X }
- X fbuffer = 1;
- X }
- X xold = -100000; yold = -100000;
- X}
- X
- X
- Xvoid amiline(x1, y1, x2, y2)
- XPLINT x1, y1, x2, y2;
- X{
- X short comm, xshrt, yshrt;
- X
- X /* Check for intuition messages */
- X procmess();
- X if(x1 == xold && y1 == yold) {
- X comm = PEND;
- X xshrt = x2;
- X yshrt = y2;
- X if(fbuffer) {
- X (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
- X (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
- X (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
- X }
- X PLDraw((PLWidth*x2)/InitPLWidth,(PLHeight*y2)/InitPLHeight);
- X }
- X else {
- X comm = PENU;
- X xshrt = x1;
- X yshrt = y1;
- X if(fbuffer) {
- X (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
- X (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
- X (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
- X }
- X comm = PEND;
- X xshrt = x2;
- X yshrt = y2;
- X if(fbuffer) {
- X (void)fwrite((char *)&comm,sizeof(short),1,PlotFile);
- X (void)fwrite((char *)&xshrt,sizeof(short),1,PlotFile);
- X (void)fwrite((char *)&yshrt,sizeof(short),1,PlotFile);
- X }
- X PLMove((PLWidth*x1)/InitPLWidth,(PLHeight*y1)/InitPLHeight);
- X PLDraw((PLWidth*x2)/InitPLWidth,(PLHeight*y2)/InitPLHeight);
- X }
- X xold = x2;
- X yold = y2;
- X}
- X
- Xvoid PLMove(x, y)
- XPLINT x, y;
- X{
- X PLINT xsc, ysc;
- X
- X xsc = XOffset + x;
- X ysc = YOffset + PLHeight - y;
- X Move(PLWRPort,xsc,ysc);
- X}
- X
- Xvoid PLDraw(x, y)
- XPLINT x, y;
- X{
- X PLINT xsc, ysc;
- X
- X xsc = XOffset + x;
- X ysc = YOffset + PLHeight - y;
- X Draw(PLWRPort,xsc,ysc);
- X}
- X
- Xvoid remakeplot()
- X{
- X long cxy, x1, y1;
- X long x, y;
- X void setpen();
- X
- X setpen(0);
- X RectFill(PLWRPort,PLWindow->BorderLeft,PLWindow->BorderTop,
- X PLWindow->Width-PLWindow->BorderRight,
- X PLWindow->Height-PLWindow->BorderBottom);
- X
- X setpen(1);
- X
- X if(fbuffer == 0)
- X return;
- X prepupdate();
- X
- X while(!getpoint(&cxy, &x1, &y1)) {
- X if(cxy == PENU) {
- X x = ((long)PLWidth*(long)x1)/InitPLWidth;
- X y = ((long)PLHeight*(long)y1)/InitPLHeight;
- X PLMove((PLINT)x, (PLINT)y);
- X }
- X else if(cxy == PEND) {
- X x = ((long)PLWidth*(long)x1)/InitPLWidth;
- X y = ((long)PLHeight*(long)y1)/InitPLHeight;
- X PLDraw((PLINT)x, (PLINT)y);
- X }
- X else if(cxy == SPEN) {
- X CurColor = x1;
- X if(x1 >= MaxColors)
- X CurColor = 1;
- X setpen((PLINT)CurColor);
- X }
- X }
- X
- X finiupdate();
- X DisplayBeep(PLScreen);
- X}
- X
- Xvoid amiwidth(width)
- XPLINT width;
- X{
- X short shwid, comm;
- X
- X if(width>=1 && width <=3) {
- X comm = PWID;
- X shwid = width;
- X if(fbuffer) {
- X fwrite((char *)&comm,sizeof(short),1,PlotFile);
- X fwrite((char *)&shwid,sizeof(short),1,PlotFile);
- X }
- X }
- X}
- X
- Xvoid amicolor(color)
- XPLINT color;
- X{
- X short shcol, comm;
- X void setpen();
- X
- X if(color >= 0 && color < 16) {
- X shcol = color;
- X comm = SPEN;
- X if(fbuffer) {
- X fwrite((char *)&comm,sizeof(short),1,PlotFile);
- X fwrite((char *)&shcol,sizeof(short),1,PlotFile);
- X }
- X if(color >= MaxColors)
- X color = 1;
- X CurColor = color;
- X setpen(color);
- X }
- X}
- X
- Xstatic void setpen(color)
- XPLINT color;
- X{
- X SetAPen(PLWRPort,color);
- X}
- X
- Xstatic void beepw()
- X{
- X DisplayBeep(PLScreen);
- X eventwait();
- X}
- END_OF_FILE
- if test 6991 -ne `wc -c <'Amiga/Amiga.c'`; then
- echo shar: \"'Amiga/Amiga.c'\" unpacked with wrong size!
- fi
- # end of 'Amiga/Amiga.c'
- fi
- if test -f 'drivers/postscript.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'drivers/postscript.c'\"
- else
- echo shar: Extracting \"'drivers/postscript.c'\" \(9517 characters\)
- sed "s/^X//" >'drivers/postscript.c' <<'END_OF_FILE'
- X/* This file contains the PostScript device dependent subroutines for */
- X/* use with plplot. */
- X
- X#include "plplot.h"
- X#include <stdio.h>
- X
- X#define LINELENGTH 70
- X#define COPIES 1
- X#define XSIZE 540
- X#define YSIZE 720
- X#define XPSSIZE 3000
- X#define YPSSIZE 2250
- X#define XOFFSET 576
- X#define YOFFSET 36
- X#define XSCALE 100
- X#define YSCALE 100
- X#define LINESCALE 100
- X#define ANGLE 90
- X#define PSX XPSSIZE-1
- X#define PSY YPSSIZE-1
- X
- Xchar *getdate();
- Xstatic int numpages = 0;
- Xstatic int linepos = 0;
- X
- Xstatic FILE *OutFile;
- Xstatic PLINT orient;
- Xstatic PLINT select=0;
- Xstatic char FileName[80];
- X
- Xvoid pssetup(xdpi, ydpi, xwid, ywid)
- XPLINT xwid, ywid;
- XPLFLT xdpi, ydpi;
- X{
- X}
- X
- Xvoid psselect(ori, name)
- XPLINT ori;
- Xchar *name;
- X{
- X orient = ori;
- X strncpy(FileName,name,sizeof(FileName)-1);
- X FileName[sizeof(FileName)-1] = '\0';
- X select = 1;
- X}
- X
- X
- X/* Open file. Set up for graphics. */
- Xvoid psinit()
- X{
- X char line[80];
- X
- X if(!select) {
- X printf("Landscape or portrait orientation? (0 or 1) ");
- X fgets(line,sizeof(line),stdin);
- X if(sscanf(line,"%d",&orient) != 1)
- X orient = 0;
- X }
- X
- X /* setpxl() sets the dots/mm in the x and y directions */
- X setpxl((PLFLT)11.81,(PLFLT)11.81); /* 300 dpi */
- X
- X /* setphy() sets the device coordinates. These are integer */
- X /* values. Set up for landscape orientation (long axis of page in the */
- X /* x direction). Origin is in the lower left hand corner. */
- X if(!orient)
- X setphy(0,PSX,0,PSY);
- X else
- X setphy(0,PSY,0,PSX);
- X
- X /* Set default pen color using scol(color). */
- X /* Any default pen color can be used but a black pen is probably best. */
- X scol(1);
- X
- X /* Set default pen width using swid(width) */
- X swid(1);
- X
- X /* Set device interaction mode using smod(mode). Set mode to 0 for */
- X /* a noninteractive device, Unless you are writing your */
- X /* own Amiga screen driver mode should be 0. */
- X smod(0);
- X
- X /* Well that's all the information plplot needs. Let's prompt for a */
- X /* graphics file name. */
- X for(;;) {
- X if(!select) {
- X printf("Enter PostScript graphics file name. ");
- X fgets(line,sizeof(line),stdin);
- X if(sscanf(line,"%s",FileName)!=1)
- X continue;
- X }
- X
- X if (!(OutFile = fopen(FileName,"w"))) {
- X fprintf(stderr,"Can't open %s.\n",FileName);
- X select = 0;
- X }
- X else
- X break;
- X }
- X select = 0;
- X
- X /* Header comments into PostScript file */
- X
- X fprintf(OutFile,"%%!PS-Adobe-2.0 EPSF-2.0\n");
- X fprintf(OutFile,"%%%%BoundingBox: 36 36 540 720\n");
- X fprintf(OutFile,"%%%%Title: %s\n", FileName);
- X fprintf(OutFile,"%%%%Creator: PLPLOT Version 2.0\n");
- X fprintf(OutFile,"%%%%CreationDate: %s\n", getdate());
- X fprintf(OutFile,"%%%%Pages: (atend)\n");
- X fprintf(OutFile,"%%%%EndComments\n\n");
- X
- X /* Definitions */
- X
- X fprintf(OutFile, "/PSSave save def\n"); /* save VM state */
- X fprintf(OutFile, "/PSDict 200 dict def\n"); /* define a dictionary */
- X fprintf(OutFile, "PSDict begin\n"); /* start using it */
- X fprintf(OutFile, "/@restore /restore load def\n");
- X fprintf(OutFile, "/restore\n");
- X fprintf(OutFile, " {vmstatus pop\n");
- X fprintf(OutFile, " dup @VMused lt {pop @VMused} if\n");
- X fprintf(OutFile, " exch pop exch @restore /@VMused exch def\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@pri\n");
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " ( ) print\n");
- X fprintf(OutFile, " ( ) cvs print\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@copies\n"); /* n @copies - */
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " /#copies exch def\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@start\n"); /* - @start - -- start everything */
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " vmstatus pop /@VMused exch def pop\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@end\n"); /* - @end - -- finished */
- X fprintf(OutFile, " {(VM Used: ) print @VMused @pri\n");
- X fprintf(OutFile, " (. Unused: ) print vmstatus @VMused sub @pri pop pop\n");
- X fprintf(OutFile, " (\\n) print flush\n");
- X fprintf(OutFile, " end\n");
- X fprintf(OutFile, " PSSave restore\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/bop\n"); /* bop - -- begin a new page */
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " /SaveImage save def\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/eop\n"); /* - eop - -- end a page */
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " showpage\n");
- X fprintf(OutFile, " SaveImage restore\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@line\n"); /* set line parameters */
- X fprintf(OutFile, " {0 setlinecap\n");
- X fprintf(OutFile, " 0 setlinejoin\n");
- X fprintf(OutFile, " 1 setmiterlimit\n");
- X fprintf(OutFile, " } def\n");
- X /* d @hsize - horizontal clipping dimension */
- X fprintf(OutFile, "/@hsize {/hs exch def} def\n");
- X fprintf(OutFile, "/@vsize {/vs exch def} def\n");
- X /* d @hoffset - shift for the plots */
- X fprintf(OutFile, "/@hoffset {/ho exch def} def\n");
- X fprintf(OutFile, "/@voffset {/vo exch def} def\n");
- X /* s @hscale - scale factors */
- X fprintf(OutFile, "/@hscale {100 div /hsc exch def} def\n");
- X fprintf(OutFile, "/@vscale {100 div /vsc exch def} def\n");
- X /* s @lscale - linewidth scale factor */
- X fprintf(OutFile, "/@lscale {100 div /lin exch def} def\n");
- X /* a @angle - rotation angle */
- X fprintf(OutFile, "/@angle {/ang exch def} def\n");
- X fprintf(OutFile, "/@SetPlot\n"); /* setup user specified offsets, */
- X fprintf(OutFile, " {\n"); /* scales, sizes for clipping */
- X fprintf(OutFile, " ho vo translate\n");
- X fprintf(OutFile, " XScale YScale scale\n");
- X fprintf(OutFile, " ang rotate\n");
- X fprintf(OutFile, " lin lw mul setlinewidth\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/XScale\n"); /* setup x scale */
- X fprintf(OutFile, " {hsc hs mul %d div} def\n", YPSSIZE);
- X fprintf(OutFile, "/YScale\n"); /* setup y scale */
- X fprintf(OutFile, " {vsc vs mul %d div} def\n", XPSSIZE);
- X fprintf(OutFile, "/lw 3 def\n"); /* default line width */
- X fprintf(OutFile, "/M {moveto} def\n");
- X fprintf(OutFile, "/D {lineto} def\n");
- X fprintf(OutFile, "/S {stroke} def\n");
- X fprintf(OutFile, "/Z {stroke newpath} def\n");
- X fprintf(OutFile, "end\n\n"); /* end of dictionary definition */
- X
- X /* Set up the plots */
- X
- X fprintf(OutFile, "PSDict begin\n");
- X fprintf(OutFile, "@start\n");
- X fprintf(OutFile, "%d @copies\n", COPIES);
- X fprintf(OutFile, "@line\n");
- X fprintf(OutFile, "%d @hsize\n", XSIZE);
- X fprintf(OutFile, "%d @vsize\n", YSIZE);
- X fprintf(OutFile, "%d @hoffset\n", XOFFSET);
- X fprintf(OutFile, "%d @voffset\n", YOFFSET);
- X fprintf(OutFile, "%d @hscale\n", XSCALE);
- X fprintf(OutFile, "%d @vscale\n", YSCALE);
- X fprintf(OutFile, "%d @lscale\n", LINESCALE);
- X fprintf(OutFile, "%d @angle\n", ANGLE);
- X fprintf(OutFile, "@SetPlot\n\n");
- X fprintf(OutFile, "bop\n");
- X fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
- X}
- X
- X/* Sets the printer to text mode */
- Xvoid pstext()
- X{
- X}
- X
- X/* Sets the printer to graphics mode */
- Xvoid psgraph()
- X{
- X}
- X
- X/* Form feed */
- Xvoid psclear()
- X{
- X fprintf(OutFile," S\neop\nbop\n");
- X}
- X
- Xstatic PLINT xlast, ylast;
- X
- Xvoid pspage()
- X{
- X numpages++;
- X fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
- X linepos = 0;
- X xlast = -100000; ylast = -100000;
- X}
- X
- X/* May put something here someday */
- Xvoid pscolor(colour)
- Xint colour;
- X{
- X}
- X
- X/* I don't know what to put here - Tony */
- Xvoid pswidth()
- X{
- X}
- X
- Xvoid psline(x1,y1,x2,y2)
- XPLINT x1,y1,x2,y2;
- X{
- X if (linepos + 21 > LINELENGTH) {
- X putc('\n', OutFile);
- X linepos = 0;
- X } else
- X putc(' ', OutFile);
- X
- X if(!orient) {
- X if(x1 == xlast && y1 == ylast)
- X fprintf(OutFile, "%ld %ld D", x2, y2);
- X else
- X fprintf(OutFile, "Z %ld %ld M %ld %ld D", x1, y1, x2, y2);
- X }
- X else {
- X if(x1 == xlast && y1 == ylast)
- X fprintf(OutFile, "%ld %ld D", PSX-y2, x2);
- X else
- X fprintf(OutFile, "Z %ld %ld M %ld %ld D", PSX-y1,x1,PSX-y2,x2);
- X }
- X
- X xlast = x2;
- X ylast = y2;
- X linepos += 21;
- X}
- X
- X/* Close graphics file */
- Xvoid pstidy()
- X{
- X fprintf(OutFile," S\neop\n");
- X numpages++;
- X fprintf(OutFile, "@end\n\n");
- X fprintf(OutFile, "%%%%Trailer\n");
- X fprintf(OutFile, "%%%%Pages: %d\n", numpages);
- X fclose(OutFile);
- X numpages = 0;
- X linepos = 0;
- X}
- X
- X/* Get the date and time */
- Xstatic char *getdate()
- X{
- X int len;
- X long t, time();
- X char *p, *ctime();
- X
- X t = time((long *) 0);
- X p = ctime(&t);
- X len = strlen(p);
- X *(p + len - 1) = '\0'; /* zap the newline character */
- X return p;
- X}
- END_OF_FILE
- if test 9517 -ne `wc -c <'drivers/postscript.c'`; then
- echo shar: \"'drivers/postscript.c'\" unpacked with wrong size!
- fi
- # end of 'drivers/postscript.c'
- fi
- if test -f 'fonts/plstnd.fnt.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fonts/plstnd.fnt.uu'\"
- else
- echo shar: Extracting \"'fonts/plstnd.fnt.uu'\" \(8058 characters\)
- sed "s/^X//" >'fonts/plstnd.fnt.uu' <<'END_OF_FILE'
- Xbegin 644 plstnd.fnt
- XM"R_W#/<)``SX]T````P(]T``^_X%_D!`]PSU"OD,^?=``/D,`@P%"P8*!P@'_
- XM!@8$!0,"`D``^0("`@4!!@`'_@?[!OD%^`+W^?=`0/<,]@L(!P<)!0L##/\,@
- XM_0O["?H'^03Y__K\^_K]^/_W`_<%^`?Z"/Q`0/<,]0KY#/GW0`#Y#``,`PL%O
- XM"08'!P0'_P;\!?H#^`#W^?=`0/<,]@GZ#/KW0`#Z#`<,0`#Z`@("0`#Z]P?W+
- XM0$#W#/8(^@SZ]T``^@P'#$``^@("`D!`]PSV"P@'!PD%"P,,_PS]"_L)^@?YD
- XM!/G_^OS[^OWX__<#]P7X!_H(_`C_0``#_PC_0$#W#/4+^0SY]T``!PP']T``G
- XM^0('`D!`]PS\!``,`/=`0/<,^`@$#`3\`_D"^`#W_O?\^/OY^OSZ_D!`]PSU-
- XM"OD,^?=```<,^?Y``/X#!_=`0/<,]@?Z#/KW0`#Z]P;W0$#W#/0,^`SX]T``C
- XM^`P`]T``"`P`]T``"`P(]T!`]PSU"_D,^?=``/D,!_=```<,!_=`0/<,]0O^F
- XM#/P+^@GY!_@$^/_Y_/KZ_/C^]P+W!/@&^@?\"/\(!`<'!@D$"P(,_@Q`0/<,M
- XM]0KY#/GW0`#Y#`(,!0L&"@<(!P4&`P4"`@'Y`4!`]PSU"_X,_`OZ"?D'^`3X:
- XM__G\^OK\^/[W`O<$^`;Z!_P(_P@$!P<&"00+`@S^#$```?L']4!`]PSU"OD,?
- XM^?=``/D,`@P%"P8*!P@'!@8$!0,"`OD"0````@?W0$#W#/8*!PD%"P(,_@S[&
- XM"_D)^0?Z!?L$_0,#`04`!O\'_0?Z!?@"]_[W^_CY^D!`]PSX"``,`/=``/D,Z
- XM!PQ`0/<,]0OY#/G]^OK\^/_W`?<$^`;Z!_T'#$!`]PSW"?@,`/=```@,`/=`#
- XM0/<,]`SV#/OW0```#/OW0```#`7W0``*#`7W0$#W#/8*^0P']T``!PSY]T!`8
- XM]PSW"?@,``(`]T``"`P``D!`]PSV"@<,^?=``/D,!PQ``/GW!_=`0/<,]PD`E
- XM#/CW0```#`CW0`#[_@7^0$#W#/4*^0SY]T``^0P"#`4+!@H'"`<&!@0%`P(">
- XM0`#Y`@("!0$&``?^!_L&^07X`O?Y]T!`]PSV!_H,^O=``/H,!@Q`0/<,]PD`)
- XM#/CW0```#`CW0`#X]PCW0$#W#/8)^@SZ]T``^@P'#$``^@("`D``^O<']T!`U
- XM]PSV"@<,^?=``/D,!PQ``/GW!_=`0/<,]0OY#/GW0``'#`?W0`#Y`@<"0$#W0
- XM#/4+_@S\"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'!P8)!`L"#/X,T
- XM0`#]`@,"0$#W#/P$``P`]T!`]PSU"OD,^?=```<,^?Y``/X#!_=`0/<,]PD`-
- XM#/CW0```#`CW0$#W#/0,^`SX]T``^`P`]T``"`P`]T``"`P(]T!`]PSU"_D,=
- XM^?=``/D,!_=```<,!_=`0/<,]PGY#`<,0`#]`@,"0`#Y]P?W0$#W#/4+_@S\:
- XM"_H)^0?X!/C_^?SZ^OSX_O<"]P3X!OH'_`C_"`0'!P8)!`L"#/X,0$#W#/4+E
- XM^0SY]T``!PP']T``^0P'#$!`]PSU"OD,^?=``/D,`@P%"P8*!P@'!08#!0("U
- XM`?D!0$#W#/<)^0P``OGW0`#Y#`<,0`#Y]P?W0$#W#/@(``P`]T``^0P'#$!`9
- XM]PSW"?D'^0GZ"_L,_0S^"_\)``4`]T``!P<'"08+!0P##`(+`0D`!4!`]PSV+
- XM"@`,`/=``/X'^P;Z!?D#^0#Z_OO]_OP"_`7]!OX'``<#!@4%!@('_@=`0/<,M
- XM]@KY#`?W0`#Y]P<,0$#W#/4+``P`]T``]P;X!OD%^@'[__S^__T!_03^!?\&Z
- XM`0<%"`8)!D!`]PSV"OGW_??Z_OD"^0;Z"?P+_PP!#`0+!@D'!@<"!OX#]P?W5
- XM0$#W#/<*!@4&]T``!@($!`(%_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSVC
- XM"?H,^O=``/H"_`3^!0$%`P0%`@;_!OT%^@/X`??^]_SX^OI`0/<,]PD&`@0$]
- XM`@7_!?T$^P+Z__K]^_K]^/_W`O<$^`;Z0$#W#/<*!@P&]T``!@($!`(%_P7]Y
- XM!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSW"?K_!O\&`04#!`0"!?\%_03[`OK_@
- XM^OW[^OWX__<"]P3X!OI`0/<,^P<%#`,,`0L`"`#W0`#]!00%0$#W#/<*!@4&<
- XM]07R!/$"\/_P_?%```8"!`0"!?\%_03[`OK_^OW[^OWX__<"]P3X!OI`0/<,1
- XM]PK[#/OW0`#[`?X$``4#!04$!@$&]T!`]PS\!/\,``L!#``-_PQ````%`/=`,
- XM0/<,^P4`#`$+`@P!#0`,0``!!0'T`/'^\/SP0$#W#/<(^PS[]T``!07[^T``$
- XM__\&]T!`]PS\!``,`/=`0/<,\0_U!?7W0`#U`?@$^@7]!?\$``$`]T````$#<
- XM!`4%"`4*!`L!"_=`0/<,]PK[!?OW0`#[`?X$``4#!04$!@$&]T!`]PSW"O\%-
- XM_03[`OK_^OW[^OWX__<"]P3X!OH'_0?_!@($!`(%_P5`0/<,]@GZ!?KP0`#Z-
- XM`OP$_@4!!0,$!0(&_P;]!?H#^`'W_O?\^/KZ0$#W#/<*!@4&\$``!@($!`(%,
- XM_P7]!/L"^O_Z_?OZ_?C_]P+W!/@&^D!`]PSY!OT%_?=``/W__@(`!`(%!05`0
- XM0/<,^`D&`@4$`@7_!?P$^P+\`/[_`_X%_0;[!OH%^`+W__?\^/OZ0$#W#/L'T
- XM``P`^P'X`_<%]T``_04$!4!`]PSW"OL%^_O\^/[W`?<#^`;[0``&!0;W0$#W7
- XM#/@(^@4`]T``!@4`]T!`]PSU"_@%_/=````%_/=````%!/=```@%!/=`0/<,Z
- XM^`G[!0;W0``&!?OW0$#W#/@(^@4`]T``!@4`]_[S_/'Z\/GP0$#W#/@)!@7[Q
- XM]T``^P4&!4``^_<&]T!`]PSV"_\%_03[`OH`^?WY^OKX_/?^]P#X`_L%_@<"V
- XM"`5``/\%`04"!`,"!?H&^`?W"/=`0/<,]PH##`$+_PG]!?P"^_[Z^/GP0``#:
- XM#`4,!PH'!P8%!00#`P`#0````P("!``%_@7[!/D#^`'W__?]^/SY^_Q`0/<,Q
- XM]PKX`OH$_`7]!?\$``,!``'\`/=```@%!P(&``#W_O/]\$!`]PSW"0(%_P7]S
- XM!/L"^O_Z_/OY_/C^]P#W`O@$^@7]!0`$`P(%``?_"?\+``P"#`0+!@E`0/<,E
- XM^`<"#``+_PK_"0`(`P<&!T``!@<"!?\#_`#[_?O[_/G^]P'U`O,"\0'P__#^N
- XM\D!`]PSV"O<!^`/Z!?P%_03]`OS^^O=``/S^_@(`!`(%!`4&`P8`!?L"\$!`B
- XM]PSZ!0`%_O[]^OWX_O<`]P+Y`_M`0/<,]PG]!?GW0``'!`8%!04#!/\`_?_\G
- XM_T``_/_^_O_]`?@"]P/W!/A`0/<,^`CY#/L,_0O^"@;W0```!?KW0$#W#/8+P
- XM_07W\$``_`'[_/OY_??_]P'X`_H%_D``!P4%_@3Z!/@%]P?W"?D*^T!`]PSWX
- XM"?H%_07\__OZ^O=```<%!@(%``/]`/K]^/KW0$#W#/@(`@P`"_\*_PD`"`,'C
- XM!@=```,'``;^!?T#_0'__P+^!/Y```+^_OW\_/OZ^_C]]@'T`O,"\0#P_O!`G
- XM0/<,^`D`!?X$_`+[__O\_/G]^/_W`?<#^`7Z!OT&``4#!`0"!0`%0$#W#/4+T
- XM_@7Z]T```P4$_P7Z!O=``/<"^03\!0D%0$#W#/<)^__[_/SY_?C_]P'W`_@%,
- XM^@;]!@`%`P0$`@4`!?X$_`+[__?P0$#W#/<+"07_!?T$^P+Z__K\^_G\^/[WA
- XM`/<"^`3Z!?T%``0#`P0!!4!`]PSV"@$%_O=``/@"^@3]!0@%0$#W#/8*]P'X"
- XM`_H%_`7]!/T"^_S[^?WW__<"^`3Z!OX'`@<%0$#W#/<)^07[!?T#`_(%\`?P+
- XM0``(!0<#!0#[]?GR^/!`0/<,]`L$#/SP0`#U`?8#^`7Z!?L$^P+Z_?KZ^_C]?
- XM]__W`O@$^@;]"`()!4!`]PST"_P%^@3X`??^]_OX^/GW^_?]^/_[0```___[;
- XM`/@!]P/W!?@'^PC^"`$'!`8%0$#W#/@(!00#!0`%_@3\`OO_^_S\^?WX__<"Z
- XM]P3X0`#[_@/^0$#W#/@)`@P`"_X(_0;\`_O^^_K\^/WW__<!^`/[!/T%``8%F
- XM!@D%"P0,`@Q``/P"!0)`0/<,]@H$#/SP0`#_!?P$^@+Y__G\^OK\^/_W`?<$(
- XM^`;Z!_T'``8"!`0!!?\%0$#W#/@(0`!`0/<,]@K_#/P+^@CY`_D`^OO\^/_W+
- XM`?<$^`;[!P`'`P8(!`L!#/\,0$#W#/8*_`C^"0$,`?=`0/<,]@KZ!_H(^PK\5
- XM"_X,`@P$"P4*!@@&!@4$`P'Y]P?W0$#W#/8*^PP``$`P0%`P8"!_\'_0;Z7
- XM!/@!]_[W^_CZ^?G[0$#W#/8*`PSY_@C^0``##`/W0$#W#/8*!0S[#/H#^P3^P
- XM!0$%!`0&`@?_!_T&^@3X`??^]_OX^OGY^T!`]PSV"@8)!0L"#``,_0O["/H#L
- XM^O[[^OWX`/<!]P3X!OH'_0?^!@$$`P$$``3]`_L!^OY`0/<,]@H'#/WW0`#YD
- XM#`<,0$#W#/8*_@S["_H)^@?[!?T$`0,$`@8`!_X'^P;Y!?@"]_[W^_CZ^?G[2
- XM^?[Z`/P"_P,#!`4%!@<&"04+`@S^#$!`]PSV"@8%!0(#``#____\`/H"^07Y*
- XM!OH)_`O_#``,`PL%"08%!@`%^P/X`/?^]_OX^OI`0/<,^P4`^?_X`/<!^`#Y^
- XM0$#W#/L%`?@`]__X`/D!^`'V`/3_\T!`]PS[!0`%_P0``P$$``5```#Y__@`!
- XM]P'X`/E`0/<,^P4`!?\$``,!!``%0``!^`#W__@`^0'X`?8`]/_S0$#W#/L%Z
- XM``P`_D```/G_^`#W`?@`^4!`]PSW"?H'^@C["OP+_@P"#`0+!0H&"`8&!00$2
- XM`P`!`/Y```#Y__@`]P'X`/E`0/<,_`0`#``%0$#W#/@(_`S\!4``!`P$!4!`4
- XM]PSY!_\,_0O\"?P'_07_!`$$`P4$!P0)`PL!#/\,0$#W#/8*_A#^\T```A`"$
- XM\T``!PD%"P(,_@S["_D)^0?Z!?L$_0,#`04`!O\'_0?Z!?@"]_[W^_CY^D!`5
- XM]PSU"PD0]_!`0/<,^0<$$`(.``O^!_T"_?[^^0#U`O($\$!`]PSY!_P0_@X`C
- XM"P('`P(#_@+Y`/7^\OSP0$#W#/P$`!``\$!`]PSS#?<`"0!`0/<,\PT`"0#WO
- XM0`#W``D`0$#W#/,-]P,)`T``]_T)_4!`]PSX"``&`/I``/L#!?U```4#^_U`&
- XM0/<,^P4``?\``/\!```!0$#W#/8+`1#Z\$``!Q``\$``^@,(`T``^?T'_4!`,
- XM]PSS#0H#"@0)!0@%!P0&`@3]`OH`^/[W^O?X^/?Y]OOV_??_^`#_!``%`0<!J
- XM"0`+_@S\"_L)^P?\!/X!`_H%^`?W"?<*^`KY0$#W#/4+]PGX!_D#^?WX^??WZ
- XM0``)"0@'!P,'_0CY"?=``/<)^0C]!P,'!P@)"4``]_?Y^/WY`_D'^`GW0$#WG
- XM#/D'_P?\!OH$^0'Y__K\_/K_^0'Y!/H&_`?_!P$&!`0&`0?_!T!`]PSZ!OH&5
- XM^OH&^@8&^@9`0/<,^0<`"/G\!_P`"$!`]PSZ!@`*^@``]@8```I`0/<,^`@`;
- XM"?X#^`/]__OY`/T%^0/_"`,"`P`)0$#W#/D'``<`^4``^0`'`$!`]PS[!?L%1
- XM!?M```4%^_M`0/<,^P4`!@#Z0`#[`P7]0``%`_O]0$#W#/P$_P3]`_P!_/_]^
- XM_?_\`?P#_03_!`$#`P$$_P1``/T!_?]``/X"_OY``/\#__U````#`/U```$##
- XM`?U```("`OY```,!`_]`0/<,_`3\!/S\!/P$!/P$0`#]`_W]0`#^`_[]0`#_`
- XM`__]0````P#]0``!`P']0``"`P+]0``#`P/]0$#W#/H&``;\^P8"^@($^P`&4
- XM0``````&0````/H"0````/S[0`````3[0`````8"0$#W#/H&_@;^`OH"^O[^Y
- XM_O[Z`OH"_@;^!@("`@(&_@9`0/<,^0<`"/G\!_P`"$```/@'!/D$`/A`0/<,4
- XM_P$``?\``/\!```!0$#W#/X"_P+^`?[___X!_@+_`@$!`O\"0$#W#/P$_P3](
- XM`_P!_/_]_?_\`?P#_03_!`$#`P$$_P1`0/<,^P7_!?T$_`/[`?O__/W]_/_[L
- XM`?L#_`3]!?\%`00#`P0!!?\%0$#W#/D'_P?\!OH$^0'Y__K\_/K_^0'Y!/H&[
- XM_`?_!P$&!`0&`0?_!T!`]PSU"_X+^PKX"/8%]0+U_O;[^/C[]O[U`O4%]@CX9
- XM"OL+_@L""@4("`4*`@O^"T!`]PSO$?X1^A#X#_4-\POQ"/`&[P+O_O#Z\?CS5
- XM]?7S^/'Z\/[O`N\&\`CQ"_,-]0_X$/H1_A$"$`8/"`T+"PT(#P80`A'^$4!`<
- XM]PSJ%OX6^17U$_(1[P[M"^L'Z@+J_NOY[?7O\O+O]>WYZ_[J`NH'ZPOM#N\1%
- XM\A/U%?D6_A8"%0<3"Q$.#A$+$P<5`A;^%D!`]PS7*?TI]RCS)^XEZ2+E'^$;2
- XMWA?;$MD-V`G7`]?]V/?9\]ONWNGAY>7AZ=[NV_/9]]C]UP/7"=@-V1+;%]X;K
- XMX1_E(NDE[B?S*/<I_2D#*`DG#242(A<?&QL?%R(2)0TG"2@#*?TI0$#W#/D'!
- XM_1#]\$``_A#^\$``_1`$$$``_?`$\$!`]PSY!P(0`O!```,0`_!``/P0`Q!`D
- XM`/SP`_!`0/<,^`<"$/\-_@K^"/\%`0,!`OT``?X!_?_[_OC^]O_S`O!````.H
- XM_PO_!P`$0```_/_Y__4`\D!`]PSY"/X0`0T""@((`07_`_\"`P#__O_]`?L"G
- XM^`+V`?/^\$````X!"P$'``1```#\`?D!]0#R0$#W#/0,"`GX``CW0$#W#/0,D
- XM^`D(`/CW0$#W#/0,]_WW__@"^@/\`_X"`O\$_@;^"/\)`4``]__X`?H"_`+^:
- XM`0+^!/T&_0C^"0$)`T!`]PSZ!OX,`P9``/X,_0L#!D!`]PSS#08""0`&_D``J
- XM`P4(``/[0`#W``@`0$#W#/@(_@8`"0(&0`#[`P`(!0-````(`/=`0/<,\PWZO
- XM`O<`^OY``/T%^`#]^T``^``)`$!`]PSX"/[Z`/<"^D``^_T`^`7]0```"0#X%
- XM0$#W#/0,"0SW]T``_`S^"OX(_0;[!?D%]P?W"?@+^@S\#/X+`0H$"@<+"0Q`U
- XM``7^`_T"^P+Y!/<&]PCX"?H)_`?^!?Y`0/<,\PX%!`0&`@?_!_T&_`7[`OO_D
- XM_/W^_`'\`_T$_T``_P?]!?P"_/_]_?[\0``%!P3_!/T&_`C\"OX+`0L#"@8)Y
- XM"`<*!0L"#/\,_`OZ"O@(]P;V`_8`]_WX^_KY_/C_]P+W!?@'^0CZ0``&!P7_&
- XM!?T&_$!`]PSS#O\,_`OY"?<&]@/V`/?]^?K\^/_W`O<%^`CZ"OT+``L#"@8()
- XM"04+`@S_#$````/_`O\!```!``(!`@(!`P`#0````@`!`0$!`@`"0$#W#/(.2
- XM_@S["_@)]@;U`_7_]OSX^?OW_O8"]@7W"/D*_`O_"P,*!@@)!0L"#/X,0```>
- X+#`#V0`#U`0L!0$#_#
- X``
- Xend
- Xsize 5726
- END_OF_FILE
- if test 8058 -ne `wc -c <'fonts/plstnd.fnt.uu'`; then
- echo shar: \"'fonts/plstnd.fnt.uu'\" unpacked with wrong size!
- fi
- # end of 'fonts/plstnd.fnt.uu'
- fi
- if test -f 'fonts/plxtnd.idx.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'fonts/plxtnd.idx.uu'\"
- else
- echo shar: Extracting \"'fonts/plxtnd.idx.uu'\" \(8444 characters\)
- sed "s/^X//" >'fonts/plxtnd.idx.uu' <<'END_OF_FILE'
- Xbegin 644 plxtnd.idx
- XM"[@``0`,`!X`*P`Y`$<`4@!C`&X`<P!\`(<`CP"=`*@`N`#$`-<`Y@#U`/T!R
- XM"`$0`1X!)@$O`3H!10%7`5\!:@%X`8,!C@&D`:D!M`&\`<H!U0'C`?,!_@(*$
- XM`A8"'@(O`CX"1@)4````````````````````````````````````````````'
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM``````````````````````````````````````````````)C`F<":P)O`GT"M
- XM@P*.`I\"J`*X`L@"T`+E`O4"_0,&`Q0#(P,Q`T0#20-1`UT#;P-T`WT#A@.+2
- XM`Y`#F`.@`Z@#LP.[`\0#S0/6`^0#^P01```$*`0V!%@```1=````````````]
- XM``1E```$DP``!+$```2[```$PP``!.($YP``!.\%(057!8H%S`8;!GH&TP<A#
- XM!VL'AP?`!^D()@A6"&0```AX")$(J@B\",X```C@````````````````````\
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM````````````````".L(]@D0"24)-PE%"5`):0ET"7D)A@F1"9D)IPFR"<H)B
- XMV@GU"@@*'PHG"C0*/`I*"E(*6PIF"G$*BPJ3"IX*K`JW"L(*W0KB"NT*]0L#\
- XM"PX+&0LQ"SP+3`M8"V`+=0N,"Y0+J`N["]$+_`P6##L,60QW#)8,O@S9#/0-F
- XM'0T\#6L-C0VL#<T-[PX7#C4.4`YS#I4.L`[6#OX````````````````/*```6
- XM```````````````````````````````````````````/,P]'#UL/;`^`#Y0/^
- XMGP^X#\4/T`_>#^D/[A`#$!`0)!`X$$P05Q!K$'80@Q"+$)D0H1"M$+@0TA#S@
- XM$081(!$U$4X18Q&`$8L1H!&K$<(1TA'Q$@42%!(I$CT21Q)9$G`2@!*6$J\2-
- XMQQ+@$O`3"A,=$S<351-T$X83G!._$],3]A0/%"@40A1?%'`4@A24%*D4O!37L
- XM%.T5!A4?`````````````!4W%5,5915^%94````````````````````````50
- XMIQ6K%:\5LQ7'%<X5WQ7Q%?H6#A8H%C`64!9J%G(6?1:+%IP6IQ:^%L,6RQ;;S
- XM%O@6_1<*%Q<7'!<A%RD7,1<Y%T073!=6%V`7:Q=Y%YX``!>\%\07S!?2%^88K
- XM"1@EL8;1BF````````&-\8\QD%&1`9+AE*&5H99AES&8(9CQF8&:`9J1FR'
- XM&<D9X!H!&AD`````````````````````````````````````````````````I
- XM```````````````````````:.1H^&D,:2!I-&E(:5QI<&F$:9AIK&G`:=1IZ1
- XM&G\:B1J3&IT:IQJR&KT:R!K3&MH:X1KH&N\;"!LA&SH;4QMJ&W\;FQNH&[,;P
- XMNAO"&\T`````````````&]@;[!OT&_L<`QP1'!D<(0`````<+!Q1'&X<@1R4H
- XM'*<<NAS2`````!S?'.X<^QT+'1\=-AU#'5,==1V!':4=YQY''G$>DP``````%
- XM`````````````````````````````````````````````````````````!ZD"
- XM'JP>NB(GLBC"*F<
- XM(KTBTR+E(ODC*",X(TDC82-S(Y`CRB/8(_4D!B0F)#TD8R21)*@DQR3=).\E6
- XM$B5$)5LEAB6S)<<E\B86)C8F3B9D)I`FK2:[)M(F[R;_)Q\G-B=B)W\GOB?J[
- XM*`\H(2@\*$TH9RA^*)0HI@``````````````````````````````````````8
- XM```````````````````````HUBC_*2(I0"EF*8<IGRG=*?LJ#RHJ*D<J52J#T
- XM*J$JQRKM*Q`K*2M+*UTK>RN,*Z8KO2O5*^<L$2Q,+&HLF"RZ+-LL_2TK+3PM;
- XM6RUT+9(MK"W;+?TN%2XV+ELN;2Z.+K4NSB[R+R`O22]O+XHOMB_2+_<P)#!%_
- XM,&$P@S"G,+LP\3$8,3HQ9C&),:4QPS'7,?XR&C)%,G$RG#*],NHS#3,R,VHSA
- XMI```,[(SS3/Z-"8`````-$,T<C2Y-.\U)S5_-=DU[S7S-?<U^S8E-C(V83:2E
- XM-J$VRC;\-QTW7C>0-Y@WHC>P-\`WT3?S-_LX"3@9."0X*3@_.%4X8SAQ.(TXW
- XMJ3BO.+4XNCC".,<XSSC:..4X[3CU.08Y#CD9.20Y*CDP.3PY2#E?.7DY@SF,R
- XM.94YJ3FS.;TYQSG1.=TY[#G[.@HZ&3HK.C@Z13I2.E\ZC3J>.JHZS#L`.QP[S
- XM/CMQ.ZL[USOE/!4\-3QO```\?3RE/-0\\3T//3`]3CUN/9P]PSWD/?X^&SXIJ
- XM/EL^C3Z</JL^N@``/LD^\S\H/T@_>C^L/]Y`"4`I0$Q`;T"5``````````!`(
- XMQT#50.E`_4$C04E!;4&!095!L$'$0=A""T(G0G]"Z```````````````````F
- XM`````````````````````````````````````````````````````````````
- XM````````````0PA#%D,J0SY#8$.&0ZI#OD/20^U$`4051#M$5T2O10H`````K
- XM``````````````````````````````````````````!%845X19%%KT7-1=U%F
- XM[4851CU&7T:!1I$`````````````````````````````````````````````.
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````$;,1N)'$$<X1UI'=T>.1[Q'U$?>1_1(#$@<2#A(3DAX2)5(QTCKO
- XM21A)*4E#25-);TF!290`````````````````````````````````````````:
- XM``````````````````````!)JDG22AI*14IR2J5*U4L,2T5+:$N,2\E+\TPF`
- XM3$Y,<DRI3-9-&4T_36=-D$VV3>%.%TY#````````````````````````````9
- XM````````````````````````````````````3G%.ETZ]3M]/!4\K3T5/=T^2E
- XM3ZQ/QD_>3^A0%%`O4%50>U"A4+A0[%#^41E1*5%%45=1:@``````````````G
- XM`````````````````````````````````````````````````%&`4:-1O%'4W
- XM4?=2$%(M4E52=5**4J12Q5+84P=3*5-(4VA3C5.G4[]3U5/R5`M4,51=5'\`7
- XM````````````````````````````````````````````````````5*=4JU2O]
- XM5+-4WU3M51%50U5758Y5SE7<5B)68E9T5HY6L%;:5O17,%=*5V17K5?B5^Q8U
- XM!E@@6$E84UAE6'=8A%B<````````````````````````````````````````F
- XM`````%B\6,!8Q%C(6/19!5DQ6659<5F:6<I9ZEHK6EM:8UIM6GI:BEJ=6L%:?
- XMRUK56PY;.5L^6U1;:EMU6WI;@EN*6Y);H```````````````````````````3
- XM`````````````````````````````%NP6\1;Y5P47"1<15Q=7*9<U5SR71E=(
- XM1EUA78%=GEW,7>->`EXD7C9>4%Z"7IE>ME[47O1?&E\[7V9?A5^N7^L`````L
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM````````````````````````````````````````````````````````8!I@:
- XM0V!U8)Q@K$8.5A(F%.86MADF&Z8=)A\F(/8C5B3&)R8I!BHF*Z8O!C!V,@V
- XM8SYC7F.`8YUCQ&/?9`-D.```````````````````````````````````````Q
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- X1`````````````````````````
- X``
- Xend
- Xsize 6002
- END_OF_FILE
- if test 8444 -ne `wc -c <'fonts/plxtnd.idx.uu'`; then
- echo shar: \"'fonts/plxtnd.idx.uu'\" unpacked with wrong size!
- fi
- # end of 'fonts/plxtnd.idx.uu'
- fi
- if test -f 'unix/postscript.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'unix/postscript.c'\"
- else
- echo shar: Extracting \"'unix/postscript.c'\" \(9503 characters\)
- sed "s/^X//" >'unix/postscript.c' <<'END_OF_FILE'
- X/* This file contains the PostScript device dependent subroutines for */
- X/* use with plplot. */
- X
- X#include "plplot.h"
- X#include <stdio.h>
- X
- X#define LINELENGTH 70
- X#define COPIES 1
- X#define XSIZE 540
- X#define YSIZE 720
- X#define XPSSIZE 3000
- X#define YPSSIZE 2250
- X#define XOFFSET 576
- X#define YOFFSET 36
- X#define XSCALE 100
- X#define YSCALE 100
- X#define LINESCALE 100
- X#define ANGLE 90
- X#define PSX XPSSIZE-1
- X#define PSY YPSSIZE-1
- X
- Xchar *getdate();
- Xstatic int numpages = 0;
- Xstatic int linepos = 0;
- X
- Xstatic FILE *OutFile;
- Xstatic PLINT orient;
- Xstatic PLINT select=0;
- Xstatic char FileName[80];
- X
- Xvoid pssetup(xdpi, ydpi, xwid, ywid)
- XPLINT xwid, ywid;
- XPLFLT xdpi, ydpi;
- X{
- X}
- X
- Xvoid psselect(ori, name)
- XPLINT ori;
- Xchar *name;
- X{
- X orient = ori;
- X strncpy(FileName,name,sizeof(FileName)-1);
- X FileName[sizeof(FileName)-1] = '\0';
- X select = 1;
- X}
- X
- X
- X/* Open file. Set up for graphics. */
- Xvoid psinit()
- X{
- X char line[80];
- X
- X if(!select) {
- X printf("Landscape or portrait orientation? (0 or 1) ");
- X fgets(line,sizeof(line),stdin);
- X if(sscanf(line,"%d",&orient) != 1)
- X orient = 0;
- X }
- X
- X /* setpxl() sets the dots/mm in the x and y directions */
- X setpxl(11.81,11.81); /* 300 dpi */
- X
- X /* setphy() sets the device coordinates. These are integer */
- X /* values. Set up for landscape orientation (long axis of page in the */
- X /* x direction). Origin is in the lower left hand corner. */
- X if(!orient)
- X setphy(0,PSX,0,PSY);
- X else
- X setphy(0,PSY,0,PSX);
- X
- X /* Set default pen color using scol(color). */
- X /* Any default pen color can be used but a black pen is probably best. */
- X scol(1);
- X
- X /* Set default pen width using swid(width) */
- X swid(1);
- X
- X /* Set device interaction mode using smod(mode). Set mode to 0 for */
- X /* a noninteractive device, Unless you are writing your */
- X /* own Amiga screen driver mode should be 0. */
- X smod(0);
- X
- X /* Well that's all the information plplot needs. Let's prompt for a */
- X /* graphics file name. */
- X for(;;) {
- X if(!select) {
- X printf("Enter PostScript graphics file name. ");
- X fgets(line,sizeof(line),stdin);
- X if(sscanf(line,"%s",FileName)!=1)
- X continue;
- X }
- X
- X if (!(OutFile = fopen(FileName,"w"))) {
- X fprintf(stderr,"Can't open %s.\n",FileName);
- X select = 0;
- X }
- X else
- X break;
- X }
- X select = 0;
- X
- X /* Header comments into PostScript file */
- X
- X fprintf(OutFile,"%%!PS-Adobe-2.0 EPSF-2.0\n");
- X fprintf(OutFile,"%%%%BoundingBox: 36 36 540 720\n");
- X fprintf(OutFile,"%%%%Title: %s\n", FileName);
- X fprintf(OutFile,"%%%%Creator: PLPLOT Version 2.0\n");
- X fprintf(OutFile,"%%%%CreationDate: %s\n", getdate());
- X fprintf(OutFile,"%%%%Pages: (atend)\n");
- X fprintf(OutFile,"%%%%EndComments\n\n");
- X
- X /* Definitions */
- X
- X fprintf(OutFile, "/PSSave save def\n"); /* save VM state */
- X fprintf(OutFile, "/PSDict 200 dict def\n"); /* define a dictionary */
- X fprintf(OutFile, "PSDict begin\n"); /* start using it */
- X fprintf(OutFile, "/@restore /restore load def\n");
- X fprintf(OutFile, "/restore\n");
- X fprintf(OutFile, " {vmstatus pop\n");
- X fprintf(OutFile, " dup @VMused lt {pop @VMused} if\n");
- X fprintf(OutFile, " exch pop exch @restore /@VMused exch def\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@pri\n");
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " ( ) print\n");
- X fprintf(OutFile, " ( ) cvs print\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@copies\n"); /* n @copies - */
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " /#copies exch def\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@start\n"); /* - @start - -- start everything */
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " vmstatus pop /@VMused exch def pop\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@end\n"); /* - @end - -- finished */
- X fprintf(OutFile, " {(VM Used: ) print @VMused @pri\n");
- X fprintf(OutFile, " (. Unused: ) print vmstatus @VMused sub @pri pop pop\n");
- X fprintf(OutFile, " (\\n) print flush\n");
- X fprintf(OutFile, " end\n");
- X fprintf(OutFile, " PSSave restore\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/bop\n"); /* bop - -- begin a new page */
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " /SaveImage save def\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/eop\n"); /* - eop - -- end a page */
- X fprintf(OutFile, " {\n");
- X fprintf(OutFile, " showpage\n");
- X fprintf(OutFile, " SaveImage restore\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/@line\n"); /* set line parameters */
- X fprintf(OutFile, " {0 setlinecap\n");
- X fprintf(OutFile, " 0 setlinejoin\n");
- X fprintf(OutFile, " 1 setmiterlimit\n");
- X fprintf(OutFile, " } def\n");
- X /* d @hsize - horizontal clipping dimension */
- X fprintf(OutFile, "/@hsize {/hs exch def} def\n");
- X fprintf(OutFile, "/@vsize {/vs exch def} def\n");
- X /* d @hoffset - shift for the plots */
- X fprintf(OutFile, "/@hoffset {/ho exch def} def\n");
- X fprintf(OutFile, "/@voffset {/vo exch def} def\n");
- X /* s @hscale - scale factors */
- X fprintf(OutFile, "/@hscale {100 div /hsc exch def} def\n");
- X fprintf(OutFile, "/@vscale {100 div /vsc exch def} def\n");
- X /* s @lscale - linewidth scale factor */
- X fprintf(OutFile, "/@lscale {100 div /lin exch def} def\n");
- X /* a @angle - rotation angle */
- X fprintf(OutFile, "/@angle {/ang exch def} def\n");
- X fprintf(OutFile, "/@SetPlot\n"); /* setup user specified offsets, */
- X fprintf(OutFile, " {\n"); /* scales, sizes for clipping */
- X fprintf(OutFile, " ho vo translate\n");
- X fprintf(OutFile, " XScale YScale scale\n");
- X fprintf(OutFile, " ang rotate\n");
- X fprintf(OutFile, " lin lw mul setlinewidth\n");
- X fprintf(OutFile, " } def\n");
- X fprintf(OutFile, "/XScale\n"); /* setup x scale */
- X fprintf(OutFile, " {hsc hs mul %d div} def\n", YPSSIZE);
- X fprintf(OutFile, "/YScale\n"); /* setup y scale */
- X fprintf(OutFile, " {vsc vs mul %d div} def\n", XPSSIZE);
- X fprintf(OutFile, "/lw 3 def\n"); /* default line width */
- X fprintf(OutFile, "/M {moveto} def\n");
- X fprintf(OutFile, "/D {lineto} def\n");
- X fprintf(OutFile, "/S {stroke} def\n");
- X fprintf(OutFile, "/Z {stroke newpath} def\n");
- X fprintf(OutFile, "end\n\n"); /* end of dictionary definition */
- X
- X /* Set up the plots */
- X
- X fprintf(OutFile, "PSDict begin\n");
- X fprintf(OutFile, "@start\n");
- X fprintf(OutFile, "%d @copies\n", COPIES);
- X fprintf(OutFile, "@line\n");
- X fprintf(OutFile, "%d @hsize\n", XSIZE);
- X fprintf(OutFile, "%d @vsize\n", YSIZE);
- X fprintf(OutFile, "%d @hoffset\n", XOFFSET);
- X fprintf(OutFile, "%d @voffset\n", YOFFSET);
- X fprintf(OutFile, "%d @hscale\n", XSCALE);
- X fprintf(OutFile, "%d @vscale\n", YSCALE);
- X fprintf(OutFile, "%d @lscale\n", LINESCALE);
- X fprintf(OutFile, "%d @angle\n", ANGLE);
- X fprintf(OutFile, "@SetPlot\n\n");
- X fprintf(OutFile, "bop\n");
- X fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
- X}
- X
- X/* Sets the printer to text mode */
- Xvoid pstext()
- X{
- X}
- X
- X/* Sets the printer to graphics mode */
- Xvoid psgraph()
- X{
- X}
- X
- X/* Form feed */
- Xvoid psclear()
- X{
- X fprintf(OutFile," S\neop\nbop\n");
- X}
- X
- Xstatic PLINT xlast, ylast;
- X
- Xvoid pspage()
- X{
- X numpages++;
- X fprintf(OutFile, "%%%%Page: %d %d\n", numpages+1, numpages+1);
- X linepos = 0;
- X xlast = -100000; ylast = -100000;
- X}
- X
- X/* May put something here someday */
- Xvoid pscolor(colour)
- Xint colour;
- X{
- X}
- X
- X/* I don't know what to put here - Tony */
- Xvoid pswidth()
- X{
- X}
- X
- Xvoid psline(x1,y1,x2,y2)
- XPLINT x1,y1,x2,y2;
- X{
- X if (linepos + 21 > LINELENGTH) {
- X putc('\n', OutFile);
- X linepos = 0;
- X } else
- X putc(' ', OutFile);
- X
- X if(!orient) {
- X if(x1 == xlast && y1 == ylast)
- X fprintf(OutFile, "%ld %ld D", x2, y2);
- X else
- X fprintf(OutFile, "Z %ld %ld M %ld %ld D", x1, y1, x2, y2);
- X }
- X else {
- X if(x1 == xlast && y1 == ylast)
- X fprintf(OutFile, "%ld %ld D", PSX-y2, x2);
- X else
- X fprintf(OutFile, "Z %ld %ld M %ld %ld D", PSX-y1,x1,PSX-y2,x2);
- X }
- X
- X xlast = x2;
- X ylast = y2;
- X linepos += 21;
- X}
- X
- X/* Close graphics file */
- Xvoid pstidy()
- X{
- X fprintf(OutFile," S\neop\n");
- X numpages++;
- X fprintf(OutFile, "@end\n\n");
- X fprintf(OutFile, "%%%%Trailer\n");
- X fprintf(OutFile, "%%%%Pages: %d\n", numpages);
- X fclose(OutFile);
- X numpages = 0;
- X linepos = 0;
- X}
- X
- X/* Get the date and time */
- Xstatic char *getdate()
- X{
- X int len;
- X long t, time();
- X char *p, *ctime();
- X
- X t = time((long *) 0);
- X p = ctime(&t);
- X len = strlen(p);
- X *(p + len - 1) = '\0'; /* zap the newline character */
- X return p;
- X}
- END_OF_FILE
- if test 9503 -ne `wc -c <'unix/postscript.c'`; then
- echo shar: \"'unix/postscript.c'\" unpacked with wrong size!
- fi
- # end of 'unix/postscript.c'
- fi
- echo shar: End of archive 6 \(of 12\).
- cp /dev/null ark6isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 12 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Submissions to comp.sources.amiga and comp.binaries.amiga should be sent to:
- amiga@cs.odu.edu
- or amiga@xanth.cs.odu.edu ( obsolescent mailers may need this address )
- or ...!uunet!xanth!amiga ( very obsolescent mailers need this address )
-
- Comments, questions, and suggestions s should be addressed to ``amiga-request''
- (only use ``amiga'' for submissions) at the above addresses.
-